#include <stdio.h>
#include <string.h>

typedef enum a {
    c,
    d
} a_e;

struct handle{
    void (*init)();
};

void add(){};

const struct handle S = {
    .init = add;
};




// 这里的s1是变量。不能用来声明新的变量，比如：s1 a;
// 如果要声明变量：struct S a;

typedef struct student {
    char name[10];
    int  number;
} student_s;
// 等价于
typedef struct {
    char name[10];
    int  number;
} student_ss;
// 因为取了别名，使用时使用别名。所以不起结构体名也没有问题
// 这里的student_s是数据类型的别名，可以用来定义结构体变量，比如：student_s b;

// 一般使用typedef同时定义结构类型和结构指针类型
typedef struct _S{
    int i;
}s,*ps;
 
int main()
{   
    student_s b;
    struct S a;
    s c;
    ps p = &c;
    printf(".......\n");
    return 0;
}

